package testDay;

import java.util.HashSet;
import java.util.Set;

public class day2_2 {
    /*
     * 1.创建一个方法isRepeat()用来判断字符串a与字符串b是否有相同的字母，如果有返回true
     * 2.maxProduct()方法中，两层循环words数组，调用isRepeat()方法判断有无重复字母，如果没有，记录两个字符串长度乘积
     * 3.res保存返回乘积的最大值
     */
    public int maxProduct(String[] words) {
        //  ArrayList<Integer> arrayList = new ArrayList<>();
        int res = 0;
        for (int i = 0; i < words.length - 1; i++) {
            for (int j = i + 1; j < words.length; j++) {
                if (!isRepeat(words[i], words[j])) {
                    // System.out.println(words[i]+" "+words[j]);
                    //记录两字符串长度乘积
                    int temp = words[i].length() * words[j].length();
                    if (res < temp) {
                        res = temp;
                    }
                }
            }
        }
        return res;
    }

    //创建Set集合保存Str1的字母，然后判断Set中是否包含str2的字母，如果有返回true
    public boolean isRepeat(String str1, String str2) {
        boolean bol = false;
        Set<Character> set = new HashSet<>();
        for (int i = 0; i < str1.length(); i++) {
            set.add(str1.charAt(i));
        }
        for (int i = 0; i < str2.length(); i++) {
            if (set.contains(str2.charAt(i))) {
                bol = true;
                break;
            }
        }
/*        System.out.println();
        for (Character s:set){
            System.out.print(s+" ");
        }
        System.out.println();*/
        return bol;
    }
}
